package com.bjpowernode.view;

import com.bjpowernode.controller.StuViewController;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.control.*;

import java.util.HashMap;

public class AddOrEditDialog {
    //内部类定义一个类名ResultType
    //但是内部类里面只有常量
    //因此直接定义接口即可
    public static interface ResultType {
        String DIALOG = "dialog";
        String DIALOGPANE = "dialogPane";
    }
    //提供两个常量
    // public static final String  RESULT_TYPE_DIALOG="dialog";

    //键值对【Map】(键就是Set集合，值就是List)
    //通过键找值
    //项目使用其封装返回数据
    public static HashMap<String, Object> dialogCreate(String FXML, String title) throws Exception {
        //读取一个布局文件(FXML文件)
        Node node = (Node) FXMLLoader.load(StuViewController.class.getResource(FXML));
        //实例化DialogPane
        DialogPane dialogPane = new DialogPane();
        //DialogPane对象使用setGraphic方法设置布局（）
        dialogPane.setGraphic(node);
        //dialogPane对象添加按钮（系统定义好的按钮，如果要自定义可以自己设置出来）
        dialogPane.getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
        //实例化Dialog对象
        Dialog<ButtonType> dialog = new Dialog<>();
        //Dialog对象设置dialogPane对象
        dialog.setDialogPane(dialogPane);
        //dialog对象设置标题
        dialog.setTitle(title);
        //弹出框框之前如果是编辑界面，则需要有弹出之前的操作
        HashMap<String, Object> hashMap = new HashMap<>();
        //HashMap添加方法为put
        //这里使用HashMap来添加需要返回的N个对象，而不采用直接创建Class的方案
        //因为如果采用Class的方案，则会导致beans类型太多
        hashMap.put(ResultType.DIALOGPANE, dialogPane);
        hashMap.put(ResultType.DIALOG, dialog);
        return hashMap;
    }

}





